package com.apac.bom;

import java.io.Serializable;
import javax.persistence.*;

import org.codehaus.jackson.annotate.JsonIgnore;

import java.util.Date;
import java.util.List;


/**
 * The persistent class for the employee_project_tbl database table.
 * 
 */
@Entity
@Table(name="employee_project_tbl")
public class EmployeeProject extends AbstractBOM implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="EMP_PROJ_CODE")
	private int empProjCode;

	@Temporal(TemporalType.DATE)
	@Column(name="EMP_PROJ_ACT_END")
	private Date empProjActEnd;

	@Temporal(TemporalType.DATE)
	@Column(name="EMP_PROJ_ACT_START")
	private Date empProjActStart;

	@Column(name="EMP_PROJ_BILL_AMT")
	private String empProjBillAmt;

	@Column(name="EMP_PROJ_CLNT_EVAL")
	private boolean empProjClntEval;

	@Temporal(TemporalType.DATE)
	@Column(name="EMP_PROJ_CONT_REL")
	private Date empProjContRel;

	@Column(name="EMP_PROJ_DEP")
	private String empProjDep;

	@Temporal(TemporalType.DATE)
	@Column(name="EMP_PROJ_END_DATE")
	private Date empProjEndDate;

	@Column(name="EMP_PROJ_JOB_LEVEL")
	private String empProjJobLevel;

	@Column(name="EMP_PROJ_MGR_FIRST")
	private String empProjMgrFirst;

	@Column(name="EMP_PROJ_MGR_LAST")
	private String empProjMgrLast;

	@Column(name="EMP_PROJ_POSI")
	private String empProjPosi;

	@Temporal(TemporalType.DATE)
	@Column(name="EMP_PROJ_START_DATE")
	private Date empProjStartDate;

	//bi-directional many-to-one association to Clearance
	@OneToMany(mappedBy="employeeProject")
	private List<Clearance> clearances;

	//bi-directional many-to-one association to EmployeeAccountReport
	@OneToMany(mappedBy="employeeProject")
	private List<EmployeeAccountReport> employeeAccountReports;

	//bi-directional many-to-one association to EmployeeProjectAllowance
	@OneToMany(mappedBy="employeeProject")
	private List<EmployeeProjectAllowance> employeeProjectAllowances;

	//bi-directional many-to-one association to Employee
	@ManyToOne
	@JoinColumn(name="EMP_ID_NO")
	private Employee employee;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_PROJ_BILL_TYPE")
	private Reference empProjBillType;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_PROJ_BUSS_TYPE")
	private Reference empProjBussType;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_PROJ_CONT_STAT")
	private Reference empProjContStat;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_PROJ_LOC")
	private Reference empProjLoc;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_PROJ_TAX")
	private Reference empProjTax;

	//bi-directional many-to-one association to Reference
	@ManyToOne
	@JoinColumn(name="EMP_PROJ_TYPE")
	private Reference empProjType;

	//bi-directional many-to-one association to PoSow
	@ManyToOne
	@JoinColumn(name="POSOW_CODE")
	private PoSow poSow;

	//bi-directional many-to-one association to Reimbursement
	@OneToMany(mappedBy="employeeProject")
	private List<Reimbursement> reimbursements;

	//bi-directional many-to-one association to SevenSevenAssetRepairMonitoring
	@OneToMany(mappedBy="employeeProject")
	private List<SevenSevenAssetRepairMonitoring> sevenSevenAssetRepairMonitoring;

	//bi-directional many-to-one association to SevenSevenDeployedAssetMonitoring
	@OneToMany(mappedBy="employeeProject")
	private List<SevenSevenDeployedAssetMonitoring> sevenSevenDeployedAssetMonitoring;

	public EmployeeProject() {
	}

	public int getEmpProjCode() {
		return this.empProjCode;
	}

	public void setEmpProjCode(int empProjCode) {
		this.empProjCode = empProjCode;
	}

	public Date getEmpProjActEnd() {
		return this.empProjActEnd;
	}

	public void setEmpProjActEnd(Date empProjActEnd) {
		this.empProjActEnd = empProjActEnd;
	}

	public Date getEmpProjActStart() {
		return this.empProjActStart;
	}

	public void setEmpProjActStart(Date empProjActStart) {
		this.empProjActStart = empProjActStart;
	}

	public String getEmpProjBillAmt() {
		return this.empProjBillAmt;
	}

	public void setEmpProjBillAmt(String empProjBillAmt) {
		this.empProjBillAmt = empProjBillAmt;
	}

	public boolean getEmpProjClntEval() {
		return this.empProjClntEval;
	}

	public void setEmpProjClntEval(boolean empProjClntEval) {
		this.empProjClntEval = empProjClntEval;
	}

	public Date getEmpProjContRel() {
		return this.empProjContRel;
	}

	public void setEmpProjContRel(Date empProjContRel) {
		this.empProjContRel = empProjContRel;
	}

	public String getEmpProjDep() {
		return this.empProjDep;
	}

	public void setEmpProjDep(String empProjDep) {
		this.empProjDep = empProjDep;
	}

	public Date getEmpProjEndDate() {
		return this.empProjEndDate;
	}

	public void setEmpProjEndDate(Date empProjEndDate) {
		this.empProjEndDate = empProjEndDate;
	}

	public String getEmpProjJobLevel() {
		return this.empProjJobLevel;
	}

	public void setEmpProjJobLevel(String empProjJobLevel) {
		this.empProjJobLevel = empProjJobLevel;
	}

	public String getEmpProjMgrFirst() {
		return this.empProjMgrFirst;
	}

	public void setEmpProjMgrFirst(String empProjMgrFirst) {
		this.empProjMgrFirst = empProjMgrFirst;
	}

	public String getEmpProjMgrLast() {
		return this.empProjMgrLast;
	}

	public void setEmpProjMgrLast(String empProjMgrLast) {
		this.empProjMgrLast = empProjMgrLast;
	}

	public String getEmpProjPosi() {
		return this.empProjPosi;
	}

	public void setEmpProjPosi(String empProjPosi) {
		this.empProjPosi = empProjPosi;
	}

	public Date getEmpProjStartDate() {
		return this.empProjStartDate;
	}

	public void setEmpProjStartDate(Date empProjStartDate) {
		this.empProjStartDate = empProjStartDate;
	}

	public List<Clearance> getClearances() {
		return this.clearances;
	}

	public void setClearances(List<Clearance> clearances) {
		this.clearances = clearances;
	}

	public List<EmployeeAccountReport> getEmployeeAccountReports() {
		return this.employeeAccountReports;
	}

	public void setEmployeeAccountReports(List<EmployeeAccountReport> employeeAccountReports) {
		this.employeeAccountReports = employeeAccountReports;
	}

	public List<EmployeeProjectAllowance> getEmployeeProjectAllowances() {
		return this.employeeProjectAllowances;
	}

	public void setEmployeeProjectAllowances(List<EmployeeProjectAllowance> employeeProjectAllowances) {
		this.employeeProjectAllowances = employeeProjectAllowances;
	}

	@JsonIgnore
	public Employee getEmployee() {
		return this.employee;
	}

	public void setEmployee(Employee employee) {
		this.employee = employee;
	}

	public Reference getEmpProjBillType() {
		return this.empProjBillType;
	}

	public void setEmpProjBillType(Reference empProjBillType) {
		this.empProjBillType = empProjBillType;
	}

	public Reference getEmpProjBussType() {
		return this.empProjBussType;
	}

	public void setEmpProjBussType(Reference empProjBussType) {
		this.empProjBussType = empProjBussType;
	}

	public Reference getEmpProjContStat() {
		return this.empProjContStat;
	}

	public void setEmpProjContStat(Reference empProjContStat) {
		this.empProjContStat = empProjContStat;
	}

	public Reference getEmpProjLoc() {
		return this.empProjLoc;
	}

	public void setEmpProjLoc(Reference empProjLoc) {
		this.empProjLoc = empProjLoc;
	}

	public Reference getEmpProjTax() {
		return this.empProjTax;
	}

	public void setEmpProjTax(Reference empProjTax) {
		this.empProjTax = empProjTax;
	}

	public Reference getEmpProjType() {
		return this.empProjType;
	}

	public void setEmpProjType(Reference empProjType) {
		this.empProjType = empProjType;
	}

	public PoSow getPoSow() {
		return this.poSow;
	}

	public void setPoSow(PoSow poSow) {
		this.poSow = poSow;
	}

	public List<Reimbursement> getReimbursements() {
		return this.reimbursements;
	}

	public void setReimbursements(List<Reimbursement> reimbursements) {
		this.reimbursements = reimbursements;
	}

	public List<SevenSevenAssetRepairMonitoring> getSevenSevenAssetRepairMonitoring() {
		return this.sevenSevenAssetRepairMonitoring;
	}

	public void setSevenSevenAssetRepairMonitoring(List<SevenSevenAssetRepairMonitoring> sevenSevenAssetRepairMonitoring) {
		this.sevenSevenAssetRepairMonitoring = sevenSevenAssetRepairMonitoring;
	}

	public List<SevenSevenDeployedAssetMonitoring> getSevenSevenDeployedAssetMonitoring() {
		return this.sevenSevenDeployedAssetMonitoring;
	}

	public void setSevenSevenDeployedAssetMonitoring(List<SevenSevenDeployedAssetMonitoring> sevenSevenDeployedAssetMonitoring) {
		this.sevenSevenDeployedAssetMonitoring = sevenSevenDeployedAssetMonitoring;
	}

}